#! /usr/bin/env python
#*********************************************************************
#* Software License Agreement (BSD License)
#*
#*  Copyright (c) 2013, Open Source Robotics Foundation
#*  All rights reserved.
#*
#*  Redistribution and use in source and binary forms, with or without
#*  modification, are permitted provided that the following conditions
#*  are met:
#*
#*   * Redistributions of source code must retain the above copyright
#*     notice, this list of conditions and the following disclaimer.
#*   * Redistributions in binary form must reproduce the above
#*     copyright notice, this list of conditions and the following
#*     disclaimer in the documentation and/or other materials provided
#*     with the distribution.
#*   * Neither the name of the Open Source Robotics Foundation
#*     nor the names of its contributors may be
#*     used to endorse or promote products derived
#*     from this software without specific prior written permission.
#*
#*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
#*  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
#*  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
#*  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
#*  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
#*  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
#*  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
#*  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
#*  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
#*  POSSIBILITY OF SUCH DAMAGE.
#*********************************************************************/

#   Authors: Dave Coleman, Igor Napolskikh
#   Desc:   Allows PID parameters, etc to be tuned in realtime using dynamic reconfigure
PACKAGE='control_toolbox'

from dynamic_reconfigure.parameter_generator_catkin import *
gen = ParameterGenerator()

#        Name            Type      Level  Description                           Default   Min       Max
gen.add( "p" ,           double_t, 1,     "Proportional gain.",                 10.0,     -100000,  100000)
gen.add( "i" ,           double_t, 1,     "Integral gain.",                     0.1,      -100000,  100000)
gen.add( "d" ,           double_t, 1,     "Derivative gain.",                   1.0,      -1000,    1000)
gen.add( "i_clamp_min" , double_t, 1,     "Min bounds for the integral windup", -10.0,    -100000,  0)
gen.add( "i_clamp_max" , double_t, 1,     "Max bounds for the integral windup", 10.0,     0,        100000)
gen.add( "antiwindup" ,  bool_t,   1,     "Antiwindup.",                        False)
                 # PkgName  #NodeName         #Prefix for generated .h include file, e.g. ParametersConfig.py
exit(gen.generate(PACKAGE, "control_toolbox", "Parameters"))

